//
//  ExploitManager.h
//  Dopamine
//
//  Created by Lars Fröder on 09.01.24.
//

#import <Foundation/Foundation.h>
#import "DOExploit.h"

NS_ASSUME_NONNULL_BEGIN

@interface DOExploitManager : NSObject
{
    DOExploit *_preferredExploitForType[EXPLOIT_TYPE_COUNT];
}

@property (nonatomic) NSSet<DOExploit *> *allExploits;
@property (nonatomic) NSMutableArray<DOExploit *> *activeExploits;

@property (nonatomic, readonly) DOExploit *preferredKernelExploit;
@property (nonatomic, readonly) DOExploit *preferredPACBypass;
@property (nonatomic, readonly) DOExploit *preferredPPLBypass;

@property (nonatomic, readonly) DOExploit *selectedKernelExploit;
@property (nonatomic, readonly) DOExploit *selectedPACBypass;
@property (nonatomic, readonly) DOExploit *selectedPPLBypass;


+ (instancetype)sharedManager;

- (NSSet<DOExploit *> *)availableExploitsForType:(ExploitType)type;
- (int)cleanUpExploits;

@end

NS_ASSUME_NONNULL_END
